<?
//$krdOld = $krd;
error_reporting(0);
session_start();
error_reporting(7);
$ruta_raiz = "../../..";
$carpetaOld = $carpeta;
$tipoCarpOld = $tipo_carp;
if(!$tipoCarpOld) $tipoCarpOld= $tipo_carpt;
if(!$krd) $krd=$krdOld;
//if(!isset($_SESSION['dependencia']))	include "$ruta_raiz/rec_session.php";
print_r($_POST);
include "$ruta_raiz/config.php";
	include_once "$ruta_raiz/include/db/ConnectionHandler.php";
    $db = new ConnectionHandler( "$ruta_raiz" );
    if (!defined('ADODB_FETCH_ASSOC'))define('ADODB_FETCH_ASSOC',2);
    $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
//	$db->conn->debug = true;    
$usuarioGrafico = $_POST['usuario'];
$passwordUsuarioGrafico = $_POST['password'];

if ( $usuarioGrafico == 'JEFE' ) {
	
	$md5 = substr(md5($passwordUsuarioGrafico), 1 , 26);
	
	$selectPasswd = "select USUA_PASW FROM USUARIO WHERE USUA_LOGIN = '$usuarioGrafico'";
	$rsPasswd = $db->conn->query( $selectPasswd );
	$passwdMD5 = $rsPasswd->fields['USUA_PASW'];
	if ($md5 == $passwdMD5) {
		

		if ( $_POST['infoNodos'] ){
			$textoXML = $_POST['infoNodos'];
			//Activar para hacer pruebas locales con el XML que llega como parametro
	//$textoXML = "<nodo id=1><nombre>Etapa de prueba 1</nombre><termino>25</termino><proceso>791</proceso><descripcion>1 Proceso Grafico</descripcion><nodo id=2><nombre>Etapa de Prueba 2</nombre><termino>18</termino><proceso>791</proceso><descripcion>null</descripcion><origen>2</origen><destino>1</destino><origen>1</origen><destino>2</destino>";
	//$textoXML = "<descripcion>carolina</descripcion><nodo id=3><nombre>Etapa 3</nombre><termino>-1</termino><proceso>0</proceso><nodo id=2><nombre>Etapa 2</nombre><termino>-1</termino><proceso>0</proceso><nodo id=1><nombre>Etapa 1</nombre><termino>-1</termino><proceso>0</proceso><arista id=6662015><termino>-1</termino><proceso>0</proceso><origen>1</origen><destino>3</destino><diasminimo>-1</diasminimo><diasmaximo>-1</diasmaximo><automatico>false</automatico><tipificacion>false</tipificacion></arista><arista id=17900022><termino>-1</termino><proceso>0</proceso><origen>3</origen><destino>2</destino><diasminimo>-1</diasminimo><diasmaximo>-1</diasmaximo><automatico>false</automatico><tipificacion>false</tipificacion></arista><arista id=6744085><termino>-1</termino><proceso>0</proceso><origen>3</origen><destino>1</destino><diasminimo>-1</diasminimo><diasmaximo>-1</diasmaximo><automatico>false</automatico><tipificacion>false</tipificacion></arista><arista id=26143190><termino>-1</termino><proceso>0</proceso><origen>1</origen><destino>2</destino><diasminimo>-1</diasminimo><diasmaximo>-1</diasmaximo><automatico>false</automatico><tipificacion>false</tipificacion></arista><arista id=12217475><termino>-1</termino><proceso>0</proceso><origen>1</origen><destino>2</destino><diasminimo>-1</diasminimo><diasmaximo>-1</diasmaximo><automatico>false</automatico><tipificacion>false</tipificacion></arista><arista id=21219507><termino>-1</termino><proceso>0</proceso><origen>2</origen><destino>3</destino><diasminimo>-1</diasminimo><diasmaximo>-1</diasmaximo><automatico>false</automatico><tipificacion>false</tipificacion></arista>";
	
				include "$ruta_raiz/include/tx/Proceso.php";
	
			$longitud = strlen($textoXML);
			$tam = 0;
			$taman = 0;
			$x = 0;
			
			$cantidadNodos = substr_count($textoXML, "<nombre>");
			
			$arregloEtapas =  array();
			
			//Recorremos el XML y leemos las etiquetas de las etapas de una forma no ortodoxa, pero 
			//necesaria por la premura de la situacion
			for ($j = 0; $j<$cantidadNodos; $j++){
				
				//Cargamos datos de la etapa
				$posIniNodoID = strpos($textoXML, 'id=', $tam) + 3;
				$posFinNodoID = strpos($textoXML, '><nombre>', $tam);
				
				$diffID = $posFinNodoID - $posIniNodoID;
				
				$ordenEtapa = substr($textoXML, $posIniNodoID, $diffID);
				
				
				$posIniNodoNombre = strpos($textoXML, '<nombre>', $tam) + 8;
				$posFinNodoNombre = strpos($textoXML, '</nombre>', $tam);
				
				$diffNombre = $posFinNodoNombre - $posIniNodoNombre;
				$nombreEtapa = substr($textoXML, $posIniNodoNombre, $diffNombre);
				
				
				$posIniNodoTermino = strpos($textoXML, '<termino>', $tam) + 9;
				$posFinNodoTermino = strpos($textoXML, '</termino>', $tam);
				
				$diffTermino = $posFinNodoTermino - $posIniNodoTermino;
				$terminoEtapa = substr($textoXML, $posIniNodoTermino, $diffTermino);
				
							
				$posIniNodoProceso = strpos($textoXML, '<proceso>', $tam) + 9;
				$posFinNodoProceso = strpos($textoXML, '</proceso>', $tam);
				
				$diffProceso = $posFinNodoProceso - $posIniNodoProceso;
	//			$procesoSelected = substr( $textoXML, $posIniNodoProceso, $diffProceso );
				
				
				$posIniNodoDescripcion = strpos($textoXML, '<descripcion>', $tam) + 13;
				$posFinNodoDescripcion = strpos($textoXML, '</descripcion>', $tam);
				
				$diffDescripcion = $posFinNodoDescripcion - $posIniNodoDescripcion;
				$descripcionProceso = 	substr( $textoXML, $posIniNodoDescripcion, $diffDescripcion );	
				
				//El avance para el for se toma de la suma del indice de la ultima etiqueta de cada etapa + su propia longitud
				$tam = $posFinNodoProceso + 14; 
				
				
				//echo "<br>Nombre: $nombreEtapa, Orden: $ordenEtapa, Descripcion: $descripcionProceso, Termino: $terminoEtapa, Proceso: $procesoSelected. Tam: $tam";
				
				//Se lee el proceso al que se le está creando flujo
				if ( $j==0 ) {
					$maxProc = "select max(sgd_pexp_codigo) as COD from sgd_pexp_procexpedientes";
					$rsProc = $db->conn->query( $maxProc );
					$procesoSelected = $rsProc->fields['COD'] + 1;
					
					$queryProceso = "insert into sgd_pexp_procexpedientes ( sgd_pexp_codigo , sgd_pexp_descrip, sgd_pexp_tieneflujo) values ( $procesoSelected , '$descripcionProceso', 1 )";
					$db->conn->query( $queryProceso );
				}
					$flujo = new EtapaFlujo( $db );
		 		$flujo->initEtapa( $nombreEtapa, $ordenEtapa, $terminoEtapa, $procesoSelected );	
		 		$flujo->etapa->setGrafico(1);
				$resultadoInsercionEt = $flujo-> insertaEtapa(  );
				$arregloEtapas[$x] = $resultadoInsercionEt;
				$x++;
			
	//		}
		}
		
		$cantidadAristas = substr_count($textoXML, "<origen>");
			for ($ja = 0; $ja<$cantidadAristas; $ja++){
		//Cargamos datos de las aristas
				$posIniAristaOrigen = strpos($textoXML, '<origen>', $taman) + 8;
				$posFinAristaOrigen = strpos($textoXML, '</origen>', $taman);
				
				$diffOrigen = $posFinAristaOrigen - $posIniAristaOrigen;
				$etapaInicial = substr($textoXML, $posIniAristaOrigen, $diffOrigen);
				
				
				$posIniAristaDestino = strpos($textoXML, '<destino>', $taman) + 9;
				$posFinAristaDestino = strpos($textoXML, '</destino>', $taman);
				
				$taman = $posFinAristaDestino + 10;
				$diffDestino = $posFinAristaDestino - $posIniAristaDestino;
				$etapaFinal = substr($textoXML, $posIniAristaDestino, $diffDestino);
				
				/*$posIniAristaMinimo = strpos($textoXML, '<diasminimo>', $tam) + 12;
				$posFinAristaMinimo = strpos($textoXML, '</diasminimo>', $tam);
				
				$diffMinimo = $posFinAristaMinimo - $posIniAristaMinimo;
				$diasMinimo = substr($textoXML, $posIniAristaMinimo, $diffMinimo);
				
				
				$posIniAristaMaximo = strpos($textoXML, '<diasmaximo>', $tam) + 12;
				$posFinAristaMaximo = strpos($textoXML, '</diasmaximo>', $tam);
				
				$diffMaximo = $posFinAristaMaximo - $posIniAristaMaximo;
				$diasMaximo = substr($textoXML, $posIniAristaMaximo, $diffMaximo);
				
				
				$posIniAristaAuto = strpos($textoXML, '<automatico>', $tam) + 12;
				$posFinAristaAuto = strpos($textoXML, '</automatico>', $tam);
				
				$diffAuto = $posFinAristaAuto - $posIniAristaAuto;
				$automatico = substr($textoXML, $posIniAristaAuto, $diffAuto);
				
				
				$posIniAristaTipificacion = strpos($textoXML, '<tipificacion>', $tam) + 14;
				$posFinAristaTipificacion = strpos($textoXML, '</tipificacion>', $tam);
				
				$diffTipificacion = $posFinAristaTipificacion - $posIniAristaTipificacion;
				$tipificacion = substr($textoXML, $posIniAristaTipificacion, $diffTipificacion);*/
				$arista = new AristaFlujo( $db );
				$arista->initArista( $arregloEtapas[$etapaInicial-1], $arregloEtapas[$etapaFinal-1], 'Arista a insertar', 0, 0, 0,0,0, 0, $procesoSelected, 1, 0 );	
	
				$resultadoInsercionAr = $arista-> insertaArista(  );
			}
		}
	}else {
		echo "Error: Password No Concuerda";
	}
}else {
	echo "Error:Usuario No Concuerda";
}
?>